package interfaz;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;

public class InterfazPrincipal extends JFrame implements ActionListener {
	/**
	 * Panel de inventario libros
	 * 
	 */
	private JPanel panelLibros;
	/**
	 * Panel Peliculas
	 */

	private JPanel panelPeliculas;
	/**
	 * Panel de Ingreso a Inventario
	 */
	private JPanel panelIngreso;
	/**
	 * Label Titulo del Libro
	 */
	private JLabel labelTituloLibro;

	private static final String columnas [] = {"Titulo","Autor","Genero"};

	private static final String columnasP [] = {"Titulo","Director","Genero"};

	private JButton botonIngresar;

	private JButton botonBorrar;

	private JButton botonGuardar;

	private JButton botonSalir;

	private JButton botonBuscar;

	private JTable tablaLibros;

	private JTable tablaPeliculas;

	private DefaultTableModel modeloTabla;


	
	public InterfazPrincipal() {

		setTitle("Inventario Libros y Peliculas");
		setSize(980,500);
		setLocationRelativeTo(null);
		setResizable(false);
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// Crea nuevo panel de libros y sus componentes
		panelLibros = new JPanel();
		panelLibros.setLayout(new GridLayout(5, 1));
		panelLibros.setBorder(new TitledBorder("Inventario Libros"));
		panelLibros.setPreferredSize(new Dimension(450, 500));
		labelTituloLibro = new JLabel("Titulo del Libro");

		// Crea panel de ingreso de articulo al inventario
		panelIngreso = new JPanel(); 
		panelIngreso.setBorder(new TitledBorder("Registrar Libros y Peliculas"));
		//panelIngreso.setLayout(new GridLayout(5,2));
		panelIngreso.setLayout(new FlowLayout());

		// etiquetas del panel de ingreso
		JLabel labelTitulo = new JLabel("Titulo");
		JLabel labelAutor = new JLabel("Autor");
		JLabel labelDirector = new JLabel("Director");
		JLabel labelGenero = new JLabel("Genero");

		// textos panel de ingreso
		JTextField textTitulo = new JTextField();
		JTextField textAutor = new JTextField();
		JTextField textDirector = new JTextField();

		//combobox Genero de libros y peliculas
		JComboBox comboGenero = new JComboBox();
		comboGenero.addItem("Comedia");
		comboGenero.addItem("Drama");
		comboGenero.addItem("Horror");
		comboGenero.addItem("Suspenso");

		JPanel panelGrupoRegistro = new JPanel();
		panelGrupoRegistro.setLayout(new GridLayout(4,2));
		panelGrupoRegistro.setPreferredSize(new Dimension(400,250));
		panelGrupoRegistro.add(labelAutor);
		panelGrupoRegistro.add(textAutor);
		panelGrupoRegistro.add(labelAutor);
		panelGrupoRegistro.add(textAutor);
		panelGrupoRegistro.add(labelDirector);
		panelGrupoRegistro.add(textDirector);
		panelGrupoRegistro.add(labelGenero);
		panelGrupoRegistro.add(comboGenero);


		//checks
		JCheckBox checkLibros = new JCheckBox("Libro");
		JCheckBox checkPelicula = new JCheckBox("Pelicula");
		JPanel panelCheck = new JPanel();  // panel contenedor para los checkbox
		panelCheck.setLayout(new GridLayout(1,1));
		panelCheck.setLayout(new FlowLayout());
		panelCheck.setPreferredSize(new Dimension(50,50));
		panelCheck.add(checkLibros);
		panelCheck.add(checkPelicula);


		// botones
		botonIngresar = new JButton("Registrar");
		botonIngresar.addActionListener(this);
		botonBorrar = new JButton("Borrar");
		JPanel contenedor = new JPanel();
		contenedor.setLayout(new GridLayout(1,3));
		contenedor.add(botonIngresar);
		contenedor.add(new JLabel());
		contenedor.add(botonBorrar);
		//              JPanel panelContenedor = new JPanel();
		//              panelContenedor.add(labelTitulo);
		//              panelContenedor.add(textTitulo);
		//              panel
		//              
		panelIngreso.add(panelCheck);
		panelIngreso.add(panelGrupoRegistro);
		panelIngreso.add(contenedor);

		//panel Peliculas
		panelPeliculas = new JPanel();
		panelPeliculas.setBorder(new TitledBorder("Lista de Peliculas"));
		panelPeliculas.setLayout(new GridLayout(5,1));
		panelPeliculas.setPreferredSize(new Dimension(500, 450));
		DefaultTableModel modeloTablaPeliculas = new DefaultTableModel(columnasP,0);
		tablaPeliculas = new JTable(modeloTablaPeliculas);
		JScrollPane pane2 = new JScrollPane(tablaPeliculas);
		panelPeliculas.add(pane2);

		//panel operaciones

		JPanel panelOperaciones = new JPanel();
		panelOperaciones.setLayout(new GridLayout(1,3));
		panelOperaciones.setLayout(new FlowLayout());
		botonSalir = new JButton("Salir");
		botonGuardar = new JButton("Guardar");

		botonBuscar = new JButton("Buscar");
		botonBuscar.addActionListener(this);
		
		panelOperaciones.add(botonGuardar);
		panelOperaciones.add(botonBuscar);
		panelOperaciones.add(botonSalir);

		// panel libros
		modeloTabla = new DefaultTableModel(columnas,0);
		tablaLibros = new JTable(modeloTabla);
		JScrollPane pane = new JScrollPane(tablaLibros);
		panelLibros.add(pane);

		add(panelIngreso,BorderLayout.NORTH);
		add(panelLibros,BorderLayout.WEST);
		add(panelPeliculas,BorderLayout.EAST);
		add(panelOperaciones,BorderLayout.SOUTH);


		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		InterfazPrincipal principal = new InterfazPrincipal();
		principal.setVisible(true);

		// TODO Auto-generated method stub

	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == botonBuscar) {
			DialogoBuscar dialogo = new DialogoBuscar();
			dialogo.setVisible(true);
			
		}

	}
}